package code

import (
	"fmt"
	"time"
)

/*
// 多路复用

	select {
		case <-ch1:
			// 发送可以成功
		case data := <-ch1:
			// 接收可以成功
		case ch1 <- data:
			// 写入可以成功
		default:
			// 没有任何channel准备好
	}
*/
func Concurrence6() {
	ch := make(chan int)
	go func() {
		time.Sleep(time.Second * 2)
		ch <- 1
	}()
	select {
	case num, ok := <-ch:
		if ok {
			fmt.Println(num)
		} else {
			fmt.Println("channel closed")
		}
	case <-time.After(time.Second * 1):
		fmt.Println("time out")
	}
}
